AWS ParallelCluster 3.7.2 がリリースされ Slurm の脆弱性に対応済みのバージョンとなりました(CVE-2023-41914)
2023 年 10 月 14 日に AWS ParallelCluster 3.7.2 がリリースされました。
今回のアップデートで機能追加はありません。ですが、CVE-2023-41914 の脆弱性に対応しています。
Upgrade Slurm to 23.02.6.
Release AWS ParallelCluster v3.7.2 · aws/aws-parallelcluster
2023 年 9 月 22 日に脆弱性対応で v3.7.1 がリリースされたのですが、また新たな脆弱性を抱え対応が必要になりました。
AWS ParallelCluster が抱えた脆弱性
ParallelCluster ご利用の対象者には 2023 年 10 月 16 日に AWS サポートから以下の件名でメール通知がありました。
Subject: [Action Required] Upgrade AWS ParallelCluster Slurm version [AWS Account: 123456789012]
内容を要約すると、重要度の高い脆弱性が公開され影響を受けるためアップデートを推奨するといったものです。
- Slurm の脆弱性が公開された(CVE-2023-41914)
- ParallelCluster 3. 代のすべてのバージョンで影響を受ける
- Slurm のバージョンを 23.02.6 か 22.05.10 へアップデートすることを推奨する
We are reaching out because you are using or have recently used AWS ParallelCluster, which is an open source tool to manage High Performance Computing (HPC) clusters on AWS. Clusters deployed with AWS ParallelCluster use Slurm as a job scheduler. SchedMD, the maintainers of Slurm, have published a CVE-2023-41914 [1] which affects all versions of Slurm used by AWS ParallelCluster 3.x. The CVE highlights issues which can lead to a user taking ownership of an arbitrary file on the system and allowing users to delete all files and subdirectories of an arbitrary target directory on the compute nodes. We recommended you update Slurm to versions 23.02.6 or 22.05.10, depending on the major version of Slurm being used by your cluster [2]. To identify your cluster's Slurm version based on the ParallelCluster version, please refer to our documentation [3].
推奨されるアップデート方法
必要なアップデート手順は ParallelCluster の GitHub リポジトリで公開されています。2 種類の Slurm のバージョンのアップデート方法が紹介されています。
課題
コンピュートノードの Slurm のアップデート方法はカスタムブートストラップ処理による EC2 インスタンス起動後にコンパイルしてからインストールし直すことになります。コンピュートノードの起動から演算開始までの時間が数分単位で遅くなることを意味します。これはコンピュートノードの動作仕様の都合、毎回コンパイルからスタートするのは仕方がありません。
他の解決策としては Slurm をアップデート済みのカスタム AMI を作成する方法です。カスタム AMI で運用しているユーザーは良いですが、カスタムブートストラップの処理で初期セットアップを行っているユーザーには二の足を踏む内容です。
AWS ParallelCluster 3.7.2 Relesed
CVE-2023-41914の対策は Slurm のバージョンを 23.02.6 か 22.05.10 へアップデートすることでした。
2023 年 10 月 14 日にリリースされた AWS ParallelCluster 3.7.2 で、Slurm のバージョンがデフォルトで 23.02.6 となりました。つまり、ParallelCluster 3.代すべてのバージョンで抱えた脆弱性が解消されたバージョンとなります。
バージョンを確認してみる
ParallelCluster 3.7.2 のクラスターを作成し、バージョンを確認してみます。
v3.7.2 のクラスターは以下のコンフィグで構築しました。全文は長いため折りたたみしています。
- OS: Ubuntu 22.04
折りたたみ
Region: ap-northeast-1 Image: Os: ubuntu2204 Tags: - Key: Name Value: v372-cluster # ---------------------------------------------------------------- # Head Node Settings # ---------------------------------------------------------------- HeadNode: InstanceType: t3.micro Networking: ElasticIp: false SubnetId: subnet-0cc9326cae7a514a3 Ssh: KeyName: sandbox-keypair LocalStorage: RootVolume: Size: 40 Encrypted: true VolumeType: gp3 Iops: 3000 Throughput: 125 Iam: AdditionalIamPolicies: - Policy: arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore S3Access: - BucketName: hpc-dev-postinstall-files EnableWriteAccess: false # ---------------------------------------------------------------- # Compute Node Settings # ---------------------------------------------------------------- Scheduling: Scheduler: slurm SlurmSettings: ScaledownIdletime: 5 SlurmQueues: # ------ Compute 1 ------ - Name: queue1 ComputeResources: - Name: queue1 Instances: - InstanceType: c6i.large - InstanceType: m6i.large MinCount: 0 MaxCount: 10 DisableSimultaneousMultithreading: true ComputeSettings: LocalStorage: RootVolume: Size: 40 Encrypted: true VolumeType: gp3 Iops: 3000 Throughput: 125 CapacityType: SPOT AllocationStrategy: lowest-price Networking: SubnetIds: - subnet-0cc9326cae7a514a3 PlacementGroup: Enabled: false CustomActions: OnNodeConfigured: Script: s3://hpc-dev-postinstall-files/mount-moutpoint-for-s3/mount.sh Iam: AdditionalIamPolicies: - Policy: arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore S3Access: - BucketName: hpc-dev-postinstall-files EnableWriteAccess: false # ---------------------------------------------------------------- # Shared Storage Settings # ---------------------------------------------------------------- # SharedStorage: # - MountDir: /mnt/efs-1zone # Name: efs-1zone # StorageType: Efs # EfsSettings: # FileSystemId: fs-0f1158ade79354809 # - MountDir: /mnt/efs-multiaz # Name: efs-multiaz # StorageType: Efs # EfsSettings: # FileSystemId: fs-0c1f163ca89a2b390 # ---------------------------------------------------------------- # Other Settings # ---------------------------------------------------------------- Monitoring: Logs: CloudWatch: Enabled: true RetentionInDays: 180 DeletionPolicy: "Delete" Dashboards: CloudWatch: Enabled: false
ヘッドノード
Slurm のバージョンを確認してみました。23.02.6
の表記を確認できました。脆弱性対応済みのバージョンまであがった Slurm がデフォルトでインストールされた状態となっています。
ubuntu@ip-10-1-0-233:/etc/parallelcluster$ grep "cfn_node_type" /etc/parallelcluster/cfnconfig cfn_node_type=HeadNode ubuntu@ip-10-1-0-233:/etc/parallelcluster$ sinfo -V slurm 23.02.6
コンピュートノード
ヘッドノードから下記のジョブをサブミットして実行結果を確認します。
/bin/bash grep "cfn_node_type" /etc/parallelcluster/cfnconfig sinfo -V
コンピュートノードも Slurm のバージョンは23.02.6
であることを確認できました。
cfn_node_type=ComputeFleet slurm 23.02.6
おわりに
3 週間前の CVE-2023-41915 対応と何が違うのか、v3.7.2 リリース当初は情報が少なくわかりませんでした。AWS からの通知メールや、Slurm のユーザーグループの情報を確認してやっと意味がわかりました。本記事でどなたかの調べる手間が省けたら幸いです。